From 20079a9960778e320a0028316a565fd2cffc3c38 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 7 Sep 2015 12:25:29 -0400 Subject: [PATCH] builder: Minor refactoring Keep the GString in PropertyInfo around, instead of throwing it away and just keeping the char*. --- gtk/gtkbuilder.c | 12 ++++++------ gtk/gtkbuilderparser.c | 5 +---- gtk/gtkbuilderprivate.h | 1 - 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/gtk/gtkbuilder.c b/gtk/gtkbuilder.c index 5849cbe23f..caf7610ec4 100644 --- a/gtk/gtkbuilder.c +++ b/gtk/gtkbuilder.c @@ -480,7 +480,7 @@ gtk_builder_get_parameters (GtkBuilder *builder, if (G_IS_PARAM_SPEC_OBJECT (prop->pspec) && (G_PARAM_SPEC_VALUE_TYPE (prop->pspec) != GDK_TYPE_PIXBUF)) { - GObject *object = gtk_builder_get_object (builder, prop->data); + GObject *object = gtk_builder_get_object (builder, prop->text->str); if (object) { @@ -493,14 +493,14 @@ gtk_builder_get_parameters (GtkBuilder *builder, { g_warning ("Failed to get construct only property " "%s of %s with value `%s'", - prop->pspec->name, object_name, prop->data); + prop->pspec->name, object_name, prop->text->str); continue; } /* Delay setting property */ property = g_slice_new (DelayedProperty); property->pspec = prop->pspec; property->object = g_strdup (object_name); - property->value = g_strdup (prop->data); + property->value = g_strdup (prop->text->str); property->line = prop->line; property->col = prop->col; builder->priv->delayed_properties = @@ -508,7 +508,7 @@ gtk_builder_get_parameters (GtkBuilder *builder, continue; } } - else if (prop->bound && (!prop->data || *prop->data == '\0')) + else if (prop->bound && (!prop->text || prop->text->len == 0)) { /* Ignore properties with a binding and no value since they are * only there for to express the binding. @@ -516,10 +516,10 @@ gtk_builder_get_parameters (GtkBuilder *builder, continue; } else if (!gtk_builder_value_from_string (builder, prop->pspec, - prop->data, ¶meter.value, &error)) + prop->text->str, ¶meter.value, &error)) { g_warning ("Failed to set property %s.%s to %s: %s", - g_type_name (object_type), prop->pspec->name, prop->data, + g_type_name (object_type), prop->pspec->name, prop->text->str, error->message); g_error_free (error); error = NULL; diff --git a/gtk/gtkbuilderparser.c b/gtk/gtkbuilderparser.c index decbdb07e9..0f34d3a4c3 100644 --- a/gtk/gtkbuilderparser.c +++ b/gtk/gtkbuilderparser.c @@ -681,9 +681,8 @@ parse_property (ParserData *data, static void free_property_info (PropertyInfo *info) { - g_free (info->data); + g_string_free (info->text, TRUE); g_free (info->context); - /* info->text is already freed */ g_slice_free (PropertyInfo, info); } @@ -1157,8 +1156,6 @@ end_element (GMarkupParseContext *context, g_string_assign (prop_info->text, translated); } - prop_info->data = g_string_free (prop_info->text, FALSE); - object_info->properties = g_slist_prepend (object_info->properties, prop_info); } else diff --git a/gtk/gtkbuilderprivate.h b/gtk/gtkbuilderprivate.h index 0e3ad8ad4c..235c8fe7ea 100644 --- a/gtk/gtkbuilderprivate.h +++ b/gtk/gtkbuilderprivate.h @@ -62,7 +62,6 @@ typedef struct { TagInfo tag; GParamSpec *pspec; GString *text; - gchar *data; gboolean translatable:1; gboolean bound:1; gchar *context; -- 2.30.2